package com.legendshop.openportal.sdk.model.response;

import com.legendshop.openportal.sdk.model.BaseResponse;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 订单
 *
 * @author EDaoren
 */
@Data
@ApiModel("订单详情响应")
public class OrderDetailResponse extends BaseResponse {

	private static final long serialVersionUID = -5680450041707852226L;

	/**
	 * 订单类型。1是父订单   2是子订单。
	 * OrderDetailTypeEnum
	 */
	@ApiModelProperty("订单类型。1是父订单   2是子订单。")
	private Integer type;

	/**
	 * 订单创建时间。
	 * 输出格式为“yyyy-MM-dd hh:mm:ss”
	 */
	@ApiModelProperty("订单创建时间")
	private Date createTime;

	/**
	 * 订单完成时间。
	 * 输出格式为“yyyy-MM-dd hh:mm:ss”
	 * 未完成时，此参数返回null。
	 */
	@ApiModelProperty("订单完成时间")
	private Date finishTime;

	@ApiModelProperty("供应链侧的外部订单单号")
	private List<String> outOrderNo;

	@ApiModelProperty("调用方订单单号")
	private String thirdOrderNo;

	@Data
	public static class OrderSku implements Serializable {

		private static final long serialVersionUID = -485399627544222971L;

		/**
		 * 商品名称
		 */
		@ApiModelProperty("商品名称")
		private String name;

		/**
		 * 产品动态属性
		 */
		@ApiModelProperty("规格属性")
		private String attribute;

		/**
		 * 商品ID
		 */
		@ApiModelProperty("商品ID")
		private Long prodId;

		/**
		 * skuId
		 */
		@ApiModelProperty("skuId")
		private Long skuId;

		/**
		 * 下单数量
		 */
		@ApiModelProperty("下单数量")
		private Integer num;

		/**
		 * 商品价格
		 * 不包含运费，订单总金额 freight + price * num）
		 */
		@ApiModelProperty("商品价格（不包含运费）")
		private BigDecimal price;

		/**
		 * 运费拆分价格
		 */
		@ApiModelProperty("运费拆分价格")
		private BigDecimal freight;
	}
}
